package com.liming.common.serializer;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;

import java.io.IOException;
import java.math.BigDecimal;

/**
 * 分 -> 元
 * 正常项目中左移2位置一次即可。
 * 但本项目中使用OpenFeign远程调用，因此序列化和反序列话会有两次，若想将 分 -> 元，则每次左移一次。
 * @author liming
 */
public class CentToYuanSerializer extends StdSerializer<Integer> {

    public CentToYuanSerializer() {
        super(Integer.class);
    }

    @Override
    public void serialize(Integer price, JsonGenerator jg, SerializerProvider provider) throws IOException {
        if (price == 0) {
            jg.writeObject(price);
            return;
        }
        jg.writeObject(String.format("%.2f", (new BigDecimal(price)).movePointLeft(2)));
    }
}
